xen: arm: enable synchronous console while starting secondary CPUs
authorIan Campbell <ian.campbell@citrix.com>
Fri, 11 Oct 2013 16:23:18 +0000 (17:23 +0100)
committerIan Campbell <ian.campbell@citrix.com>
Fri, 29 Nov 2013 09:26:07 +0000 (09:26 +0000)
Setting synchronous console ensures that any printk hits the buffer
immediately and that any outstanding queued log messages are flushed. This
ensures that such log messages are not being printed while the secondary CPU
may be using early_printk during early bringup.

Signed-of-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Julien Grall <julien.grall@linaro.org>
Cc: Keir Fraser <keir@xen.org>
xen/arch/arm/smpboot.c

index 7636ab819c044e53ac1bb97448fcd29285bc76ed..e862477154ed73a573dc8d668a00b994eabc4236 100644 (file)
@@ -28,6 +28,7 @@
 #include <xen/softirq.h>
 #include <xen/timer.h>
 #include <xen/irq.h>
+#include <xen/console.h>
 #include <asm/gic.h>
 
 cpumask_t cpu_online_map;
@@ -356,6 +357,8 @@ int __cpu_up(unsigned int cpu)
     if ( rc < 0 )
         return rc;
 
+    console_start_sync(); /* Secondary may use early_printk */
+
     /* Tell the remote CPU which stack to boot on. */
     init_data.stack = idle_vcpu[cpu]->arch.stack;
 
@@ -368,6 +371,8 @@ int __cpu_up(unsigned int cpu)
 
     rc = arch_cpu_up(cpu);
 
+    console_end_sync();
+
     if ( rc < 0 )
     {
         printk("Failed to bring up CPU%d\n", cpu);